package com.xcdh.trading.entity;

import com.baomidou.mybatisplus.annotation.OrderBy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

/**
 * 资金流向实体类，对应 capital_flow 表
 */
@Data
@TableName("capital_flow")
public class CapitalFlow {
    /**
     * 主键ID
     */
    @TableId
    private Long id;

    /**
     * 交易日期
     */
    @TableField("trade_date")
    @OrderBy
    private String tradeDate;

    /**
     * 股票代码
     */
    @TableField("ts_code")
    private String tsCode;

    /**
     * 股票名称
     */
    @TableField("name")
    private String name;

    /**
     * 涨跌幅
     */
    @TableField("pct_change")
    private Float pctChange;

    /**
     * 最新价
     */
    @TableField("close")
    private Float close;

    /**
     * 今日主力净流入额（万元）
     */
    @TableField("net_amount")
    @OrderBy
    private Float netAmount;

    /**
     * 今日主力净流入净占比（%）
     */
    @TableField("net_amount_rate")
    private Float netAmountRate;

    /**
     * 今日超大单净流入额（万元）
     */
    @TableField("buy_elg_amount")
    @OrderBy
    private Float buyElgAmount;

    /**
     * 今日超大单净流入占比（%）
     */
    @TableField("buy_elg_amount_rate")
    private Float buyElgAmountRate;

    /**
     * 今日大单净流入额（万元）
     */
    @TableField("buy_lg_amount")
    @OrderBy
    private Float buyLgAmount;

    /**
     * 今日大单净流入占比（%）
     */
    @TableField("buy_lg_amount_rate")
    private Float buyLgAmountRate;

    /**
     * 今日中单净流入额（万元）
     */
    @TableField("buy_md_amount")
    private Float buyMdAmount;

    /**
     * 今日中单净流入占比（%）
     */
    @TableField("buy_md_amount_rate")
    private Float buyMdAmountRate;

    /**
     * 今日小单净流入额（万元）
     */
    @TableField("buy_sm_amount")
    private Float buySmAmount;

    /**
     * 今日小单净流入占比（%）
     */
    @TableField("buy_sm_amount_rate")
    private Float buySmAmountRate;

    @TableField(exist = false)
    private Float bigAmount ;

    @TableField(exist = false)
    private Float smallAmount ;

    @TableField(exist = false)
    private Float allAmount ;


    public  Float getTotalAmount(){
        return netAmount + buyElgAmount + buyLgAmount + buyMdAmount + buySmAmount ;
    }

    public Float getShowPrice(){
        if(pctChange < 0){
            return -close ;
        }
        return close ;
    }
}
